<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        let obj = {xingming:'张三',age:20,email:'zs@163.com'};

    //console.log(Object.keys(obj));   
        //怎样给指定的数据结构部署iterator接口机制？
        //给对象部署iterator接口机制：【重点】
        // obj[Symbol.iterator] = function(){

        // }

        obj[Symbol.iterator] = function(){
            //获取对象obj中的所有的键名： 
            let keyArr = Object.keys(obj);
            let keys = 0;  //下标
           // console.log(keyArr,'keyArr');
             return {
                next:function(){
 
                    if(keys < keyArr.length){  //数组没有遍历完成
                        //获取对象中的每一个键名
                       let curkey = keyArr[keys++];
                        return {value:obj[curkey],done:false}
                    }else{ //数组遍历完成
                        return {value:undefined,done:true}
                    }
                  
                }
             }
       }

    //    console.log(obj[Symbol.iterator](),999);
    // let   iteratorObj = obj[Symbol.iterator]();
    // console.log(iteratorObj,111);
    // console.log(iteratorObj.next());
    // console.log(iteratorObj.next());
    // console.log(iteratorObj.next());
    // console.log(iteratorObj.next());

    //使用for...of来遍历对象：

    for(let item of obj){
         console.log(item,'item');
    }


   
    </script>
</head>
<body>
    
</body>
</html>